package com.eshop.gen.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("column_config")
public class ColumnConfig
{
    @TableId
    private Long id;
    private String tableName;
    private String columnName;
    private String columnType;
    private String keyType;
    private String extra;
    private String remark;
    private Boolean notNull;
    private Boolean listShow;
    private Boolean formShow;
    private String formType;
    private String queryType;
    private String dictName;
    private String dateAnnotation;
    
    public ColumnConfig(final String tableName, final String columnName, final Boolean notNull, final String columnType, final String remark, final String keyType, final String extra) {
        this.tableName = tableName;
        this.columnName = columnName;
        this.columnType = columnType;
        this.keyType = keyType;
        this.extra = extra;
        this.notNull = notNull;
        if ("PRI".equalsIgnoreCase(keyType) && "auto_increment".equalsIgnoreCase(extra)) {
            this.notNull = false;
        }
        this.remark = remark;
        this.listShow = true;
        this.formShow = true;
    }
    
    public Long getId() {
        return this.id;
    }
    
    public String getTableName() {
        return this.tableName;
    }
    
    public String getColumnName() {
        return this.columnName;
    }
    
    public String getColumnType() {
        return this.columnType;
    }
    
    public String getKeyType() {
        return this.keyType;
    }
    
    public String getExtra() {
        return this.extra;
    }
    
    public String getRemark() {
        return this.remark;
    }
    
    public Boolean getNotNull() {
        return this.notNull;
    }
    
    public Boolean getListShow() {
        return this.listShow;
    }
    
    public Boolean getFormShow() {
        return this.formShow;
    }
    
    public String getFormType() {
        return this.formType;
    }
    
    public String getQueryType() {
        return this.queryType;
    }
    
    public String getDictName() {
        return this.dictName;
    }
    
    public String getDateAnnotation() {
        return this.dateAnnotation;
    }
    
    public void setId(final Long id) {
        this.id = id;
    }
    
    public void setTableName(final String tableName) {
        this.tableName = tableName;
    }
    
    public void setColumnName(final String columnName) {
        this.columnName = columnName;
    }
    
    public void setColumnType(final String columnType) {
        this.columnType = columnType;
    }
    
    public void setKeyType(final String keyType) {
        this.keyType = keyType;
    }
    
    public void setExtra(final String extra) {
        this.extra = extra;
    }
    
    public void setRemark(final String remark) {
        this.remark = remark;
    }
    
    public void setNotNull(final Boolean notNull) {
        this.notNull = notNull;
    }
    
    public void setListShow(final Boolean listShow) {
        this.listShow = listShow;
    }
    
    public void setFormShow(final Boolean formShow) {
        this.formShow = formShow;
    }
    
    public void setFormType(final String formType) {
        this.formType = formType;
    }
    
    public void setQueryType(final String queryType) {
        this.queryType = queryType;
    }
    
    public void setDictName(final String dictName) {
        this.dictName = dictName;
    }
    
    public void setDateAnnotation(final String dateAnnotation) {
        this.dateAnnotation = dateAnnotation;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof ColumnConfig)) {
            return false;
        }
        final ColumnConfig other = (ColumnConfig)o;
        if (!other.canEqual(this)) {
            return false;
        }
        final Object this$id = this.getId();
        final Object other$id = other.getId();
        Label_0065: {
            if (this$id == null) {
                if (other$id == null) {
                    break Label_0065;
                }
            }
            else if (this$id.equals(other$id)) {
                break Label_0065;
            }
            return false;
        }
        final Object this$notNull = this.getNotNull();
        final Object other$notNull = other.getNotNull();
        Label_0102: {
            if (this$notNull == null) {
                if (other$notNull == null) {
                    break Label_0102;
                }
            }
            else if (this$notNull.equals(other$notNull)) {
                break Label_0102;
            }
            return false;
        }
        final Object this$listShow = this.getListShow();
        final Object other$listShow = other.getListShow();
        Label_0139: {
            if (this$listShow == null) {
                if (other$listShow == null) {
                    break Label_0139;
                }
            }
            else if (this$listShow.equals(other$listShow)) {
                break Label_0139;
            }
            return false;
        }
        final Object this$formShow = this.getFormShow();
        final Object other$formShow = other.getFormShow();
        Label_0176: {
            if (this$formShow == null) {
                if (other$formShow == null) {
                    break Label_0176;
                }
            }
            else if (this$formShow.equals(other$formShow)) {
                break Label_0176;
            }
            return false;
        }
        final Object this$tableName = this.getTableName();
        final Object other$tableName = other.getTableName();
        Label_0213: {
            if (this$tableName == null) {
                if (other$tableName == null) {
                    break Label_0213;
                }
            }
            else if (this$tableName.equals(other$tableName)) {
                break Label_0213;
            }
            return false;
        }
        final Object this$columnName = this.getColumnName();
        final Object other$columnName = other.getColumnName();
        Label_0250: {
            if (this$columnName == null) {
                if (other$columnName == null) {
                    break Label_0250;
                }
            }
            else if (this$columnName.equals(other$columnName)) {
                break Label_0250;
            }
            return false;
        }
        final Object this$columnType = this.getColumnType();
        final Object other$columnType = other.getColumnType();
        Label_0287: {
            if (this$columnType == null) {
                if (other$columnType == null) {
                    break Label_0287;
                }
            }
            else if (this$columnType.equals(other$columnType)) {
                break Label_0287;
            }
            return false;
        }
        final Object this$keyType = this.getKeyType();
        final Object other$keyType = other.getKeyType();
        Label_0324: {
            if (this$keyType == null) {
                if (other$keyType == null) {
                    break Label_0324;
                }
            }
            else if (this$keyType.equals(other$keyType)) {
                break Label_0324;
            }
            return false;
        }
        final Object this$extra = this.getExtra();
        final Object other$extra = other.getExtra();
        Label_0361: {
            if (this$extra == null) {
                if (other$extra == null) {
                    break Label_0361;
                }
            }
            else if (this$extra.equals(other$extra)) {
                break Label_0361;
            }
            return false;
        }
        final Object this$remark = this.getRemark();
        final Object other$remark = other.getRemark();
        Label_0398: {
            if (this$remark == null) {
                if (other$remark == null) {
                    break Label_0398;
                }
            }
            else if (this$remark.equals(other$remark)) {
                break Label_0398;
            }
            return false;
        }
        final Object this$formType = this.getFormType();
        final Object other$formType = other.getFormType();
        Label_0435: {
            if (this$formType == null) {
                if (other$formType == null) {
                    break Label_0435;
                }
            }
            else if (this$formType.equals(other$formType)) {
                break Label_0435;
            }
            return false;
        }
        final Object this$queryType = this.getQueryType();
        final Object other$queryType = other.getQueryType();
        Label_0472: {
            if (this$queryType == null) {
                if (other$queryType == null) {
                    break Label_0472;
                }
            }
            else if (this$queryType.equals(other$queryType)) {
                break Label_0472;
            }
            return false;
        }
        final Object this$dictName = this.getDictName();
        final Object other$dictName = other.getDictName();
        Label_0509: {
            if (this$dictName == null) {
                if (other$dictName == null) {
                    break Label_0509;
                }
            }
            else if (this$dictName.equals(other$dictName)) {
                break Label_0509;
            }
            return false;
        }
        final Object this$dateAnnotation = this.getDateAnnotation();
        final Object other$dateAnnotation = other.getDateAnnotation();
        if (this$dateAnnotation == null) {
            if (other$dateAnnotation == null) {
                return true;
            }
        }
        else if (this$dateAnnotation.equals(other$dateAnnotation)) {
            return true;
        }
        return false;
    }
    
    protected boolean canEqual(final Object other) {
        return other instanceof ColumnConfig;
    }
    
    @Override
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $id = this.getId();
        result = result * 59 + (($id == null) ? 43 : $id.hashCode());
        final Object $notNull = this.getNotNull();
        result = result * 59 + (($notNull == null) ? 43 : $notNull.hashCode());
        final Object $listShow = this.getListShow();
        result = result * 59 + (($listShow == null) ? 43 : $listShow.hashCode());
        final Object $formShow = this.getFormShow();
        result = result * 59 + (($formShow == null) ? 43 : $formShow.hashCode());
        final Object $tableName = this.getTableName();
        result = result * 59 + (($tableName == null) ? 43 : $tableName.hashCode());
        final Object $columnName = this.getColumnName();
        result = result * 59 + (($columnName == null) ? 43 : $columnName.hashCode());
        final Object $columnType = this.getColumnType();
        result = result * 59 + (($columnType == null) ? 43 : $columnType.hashCode());
        final Object $keyType = this.getKeyType();
        result = result * 59 + (($keyType == null) ? 43 : $keyType.hashCode());
        final Object $extra = this.getExtra();
        result = result * 59 + (($extra == null) ? 43 : $extra.hashCode());
        final Object $remark = this.getRemark();
        result = result * 59 + (($remark == null) ? 43 : $remark.hashCode());
        final Object $formType = this.getFormType();
        result = result * 59 + (($formType == null) ? 43 : $formType.hashCode());
        final Object $queryType = this.getQueryType();
        result = result * 59 + (($queryType == null) ? 43 : $queryType.hashCode());
        final Object $dictName = this.getDictName();
        result = result * 59 + (($dictName == null) ? 43 : $dictName.hashCode());
        final Object $dateAnnotation = this.getDateAnnotation();
        result = result * 59 + (($dateAnnotation == null) ? 43 : $dateAnnotation.hashCode());
        return result;
    }
    
    @Override
    public String toString() {
        return "ColumnConfig(id=" + this.getId() + ", tableName=" + this.getTableName() + ", columnName=" + this.getColumnName() + ", columnType=" + this.getColumnType() + ", keyType=" + this.getKeyType() + ", extra=" + this.getExtra() + ", remark=" + this.getRemark() + ", notNull=" + this.getNotNull() + ", listShow=" + this.getListShow() + ", formShow=" + this.getFormShow() + ", formType=" + this.getFormType() + ", queryType=" + this.getQueryType() + ", dictName=" + this.getDictName() + ", dateAnnotation=" + this.getDateAnnotation() + ")";
    }
    
    public ColumnConfig() {
    }
}
